home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1997 #1 / Amiga Plus CD - 1997 - No. 01.iso / pd / programmierung / tds / convsrc / aztec2msg.c < prev    next >
C/C++ Source or Header  |  1995-11-01  |  1KB  |  65 lines

  1. /* Aztec2Msg.c */
  2.  
  3. #include <exec/types.h>
  4. #include <dos/stdio.h>
  5. #include <clib/dos_protos.h>
  6.  
  7. #include <stdio.h>
  8. #include <string.h>
  9.  
  10. static UBYTE version[] = "$VER: Aztec2Msg 1.00 (28.01.94)";
  11.  
  12. struct ErrorMsg {
  13.   BOOL warn;
  14.   LONG row,col;
  15.   UBYTE fileName[256];
  16.   UBYTE errStr[256];
  17. };
  18.  
  19.  
  20. void 
  21. PrintMsg(struct ErrorMsg *msg)
  22. {
  23.   printf("<%s> %d %c <%s>\n",msg->fileName,msg->row,(msg->warn ? 'W' : 'E'),msg->errStr);
  24. }
  25.  
  26.  
  27. /*
  28. Manx Aztec 3.6
  29.  
  30. test.c:6: ERROR 46: missing closing brace: 
  31. test.c:8: WARNING 124: invalid ptr/ptr assignment: 
  32. File test.asm; Line 1 # Need opcode, directive or macro name here.
  33. */
  34.  
  35. BOOL
  36. ConvertMsg(struct ErrorMsg *msg)
  37. {
  38. UBYTE line[256];
  39.  
  40.   while (ReadLn(line,255)) {
  41.     if (sscanf(line,"%[^:]:%d: %[^\n]",msg->fileName,&msg->row,msg->errStr) == 3) {
  42.       msg->warn = (strstr(line,"WARNING") != NULL);
  43.       return(TRUE);
  44.     }
  45.     if (sscanf(line,"File %[^;]; Line %d %[^\n]",msg->fileName,&msg->row,msg->errStr) == 3) {
  46.       msg->warn = FALSE;
  47.       return(TRUE);
  48.     }
  49.   }
  50.   return(FALSE);
  51. }
  52.  
  53.  
  54. int
  55. main(int argc,UBYTE *argv[])
  56. {
  57. struct ErrorMsg errMsg;
  58.  
  59.   while (ConvertMsg(&errMsg))
  60.     PrintMsg(&errMsg);
  61.  
  62.   return(0);
  63. }
  64.  
  65.